Java তে Exception এবং Error দুটি অত্যন্ত গুরুত্বপূর্ণ ক্লাস যা Throwable ক্লাস থেকে ইন্সপায়ার হয়, এবং দুটি ভিন্ন ধরণের অবস্থা প্রতিনিধিত্ব করে যা প্রোগ্রাম চলাকালে ঘটে। এরা Java.lang প্যাকেজের অংশ। তবে, এগুলির মধ্যে কিছু মৌলিক পার্থক্য রয়েছে যা গুরুত্বপূর্ণ:
Throwable ক্লাস:
Throwableহল একমাত্র সুপারক্লাস যাExceptionএবংErrorক্লাসের প্যারেন্ট। এটি Java তে এমন সমস্ত অবস্থা বা অবজেক্টের রুট ক্লাস যা ধরা (caught) বা ফেলে দেওয়া (thrown) হতে পারে।
Exception:
- Exception হল এমন একটি অবস্থা যা প্রোগ্রামের সাধারণ কার্যকারিতায় ব্যাঘাত সৃষ্টি করে এবং যা সাধারণত ব্যবহারকারী বা প্রোগ্রামারের ত্রুটি দ্বারা ঘটতে পারে।
Exception-এর মধ্যে দুটি প্রধান শ্রেণী রয়েছে:- Checked Exceptions: এ ধরনের এক্সসেপশনগুলি কম্পাইল টাইমে চেক করা হয় এবং সেগুলি থ্রো করার জন্য কোডে
try-catchব্লক ব্যবহার করা বাthrowsকিওয়ার্ড ব্যবহার করা বাধ্যতামূলক। উদাহরণ:IOException,SQLException,ClassNotFoundException। - Unchecked Exceptions (Runtime Exceptions): এই এক্সসেপশনগুলি রানটাইমে ঘটে এবং
RuntimeExceptionবা তার সাবক্লাস দ্বারা প্রতিনিধিত্ব করা হয়। উদাহরণ:NullPointerException,ArrayIndexOutOfBoundsException,ArithmeticException।
- Checked Exceptions: এ ধরনের এক্সসেপশনগুলি কম্পাইল টাইমে চেক করা হয় এবং সেগুলি থ্রো করার জন্য কোডে
Error:
- Error হল এমন একটি অবস্থা যা সাধারণত Java ভার্চুয়াল মেশিন (JVM) বা সিস্টেমের অবস্থা দ্বারা ঘটতে পারে এবং এটি সাধারনত থ্রো করা হয় না। এটি প্রোগ্রামের নিয়ন্ত্রণের বাইরে থাকে এবং সাধারণত এটি
Errorবা তার সাবক্লাস দ্বারা প্রতিনিধিত্ব করা হয়। - Error-এর মধ্যে
OutOfMemoryError,StackOverflowErrorএবংVirtualMachineErrorএর মতো গুরুতর সিস্টেম সম্পর্কিত ত্রুটিগুলি অন্তর্ভুক্ত থাকে।
Exception এবং Error এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | Exception | Error |
|---|---|---|
| Definition | প্রোগ্রামের কার্যক্রমে ব্যাঘাত সৃষ্টি করে এবং এটি catchable। | সিস্টেম সম্পর্কিত গুরুতর ত্রুটি যা সাধারনত catchable নয়। |
| Handling | সাধারণত try-catch ব্লক দ্বারা হ্যান্ডেল করা হয়। | এটি সাধারণত হ্যান্ডেল করা সম্ভব নয়, এবং প্রোগ্রাম থামতে পারে। |
| Subclass | Exception এবং তার উপশ্রেণী যেমন RuntimeException, IOException। | Error এবং তার উপশ্রেণী যেমন OutOfMemoryError, StackOverflowError। |
| Cause | প্রোগ্রামিং ভুল, অস্বাভাবিক ইনপুট বা ব্যবহারকারীর ত্রুটি। | JVM এর সমস্যা বা সিস্টেমের অবস্থা। |
| Examples | NullPointerException, IOException, SQLException, ArithmeticException। | OutOfMemoryError, StackOverflowError, VirtualMachineError। |
| Recoverable | বেশিরভাগ ক্ষেত্রে পুনরুদ্ধারযোগ্য, কোডের মাধ্যমে ঠিক করা যায়। | এটি সাধারণত পুনরুদ্ধারযোগ্য নয়, সিস্টেম ক্র্যাশ ঘটাতে পারে। |
| Example Usage | ব্যবহারকারীর ভুল ইনপুট বা মিসিং ফাইলের কারণে ঘটে। | JVM এর মেমরি বা স্ট্যাক সীমা অতিক্রম করার কারণে ঘটে। |
Exception এর উদাহরণ:
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = 10 / 0; // ArithmeticException will occur
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
আউটপুট:
Error: / by zero
এখানে, ArithmeticException একটি RuntimeException যা Unchecked Exception হিসেবে ধরা হয় এবং এটি try-catch ব্লক দ্বারা হ্যান্ডেল করা হয়েছে।
Error এর উদাহরণ:
public class ErrorExample {
public static void main(String[] args) {
try {
// Creating a large array to simulate OutOfMemoryError
int[] largeArray = new int[Integer.MAX_VALUE];
} catch (Error e) {
System.out.println("Error: " + e.getMessage());
}
}
}
আউটপুট:
Error: Java heap space
এখানে, OutOfMemoryError একটি Error যা JVM মেমরি সীমা অতিক্রম করার কারণে ঘটেছে। এটি সাধারণত হ্যান্ডেল করা সম্ভব নয় এবং প্রোগ্রামটি থামতে পারে।
- Exception এমন একটি অবস্থা যা প্রোগ্রাম চলার সময়ে ঘটতে পারে এবং সাধারণত catchable হয়, অর্থাৎ এটি
try-catchব্লক ব্যবহার করে হ্যান্ডেল করা যায়। - Error সাধারণত সিস্টেমের অবস্থা বা JVM এর ত্রুটি দ্বারা ঘটে এবং এটি catchable নয়, সাধারণত এটি গুরুতর সমস্যা সৃষ্টি করে যা প্রোগ্রাম থামাতে পারে।
- Java তে Exception-এর মধ্যে Checked এবং Unchecked ধরনের বিভাজন রয়েছে, তবে Error সাধারণত Unchecked থাকে এবং এটি গুরুতর সিস্টেম ত্রুটি নির্দেশ করে।
Content added By
Read more